package work3_3;

import java.util.Arrays;

public class MyDeque {
    //队列
    /**
     * 1、插入元素： add 头部：addFirst,尾部：addLast
     * 2、删除元素：poolFirst(删除头部)， poolLast(删除尾部)
     * 3、获取元素：peekFirst(获取头部元素)，peekLast(获取尾部元素)
     * 4、数组长度：size
     */
    //1、定义一个数组
    private Object[] objs;
    //2、定义数组的可变长度
    private int size;
    //3、定义它的默认长度
    public static final int DEFAULT_LENGTH=10;
    //4、定义构造方法（给数组长度程序添加变量）
    public MyDeque(){
        objs=new Object[DEFAULT_LENGTH];
    }
    public MyDeque(int length){
        //判断，小于0抛出异常
        if(length<0){
            throw new RuntimeException("length不能小于0："+length);
        }
        //objs赋值新的数组长度
        objs=new Object[length];
    }
    //添加数组元素
    public void add(Object element){
        addLast(element);
    }

    private void addLast(Object element) {
        capacity(size+1);
        objs[size++]=element;
    }

    private void capacity(int length) {
        if(length== objs.length){
            objs= Arrays.copyOf(objs,objs.length+10);
        }
    }
}

